The present invention relates generally to system and methods for software development. More particularly, the invention relates to visual programming system and methods for the generation of standalone application software.
With the increasing popularity of the personal computer, the use of computer systems is permeating all aspects of everyday life. Running application software such as word processors and spreadsheets, for example, most workers can realize substantial productivity gains. And with the advent of graphical user interfaces (GUIs), such as Microsoft.RTM. Windows, computers have become more powerful, yet easier to operate.
While GUIs are easy for the users to use, they are by no means simple to program. Instead, the intuitive user interface belies an extremely complex system, one having hundreds of API (Application Programming Interface) calls. A simple "Hello World" Microsoft Windows program written in C, for example, requires a hundred or so lines of source code. Besides the sheer bulk of the API, however, the programmer faces an even greater challenge--that of understanding the intricacies of a message-driven environment. The task of developing application software for a GUI is a substantial undertaking.
Of particular interest to the present invention is application software used to gather and organize information, particularly information suitable for representation in forms. Forms to gather data are employed daily in almost every commercial activity, in schools, and in all levels of government activity. It is a rare occurrence that an individual's life is not frequently touched by many forms. In the past, forms have been prepared by many processes ranging from hand and typewriter printed forms to engraved and mass produced forms. Prior to the advent of pervasive computing facilities, forms were completed by hand or by a typewriter and were generally interpreted by an individual.
Today, there are many software packages which are capable of creating very fine printed forms. The recent proliferation of "Desk top publishing" software and of laser and inkjet printers has brought creation of good printed forms within the reach of individuals with high end personal computers as well as businesses.
Today, many electronic forms are completed by individuals using a keyboard and/or a mouse or other pointing device; the data thus gathered is possibly stored for later reference; and a report is printed for an immediate purpose.
In prior art systems known to me, to the extent that forms provide prompting of fields to be completed, the fields are presented in sequence without regard for the data entered in the course of completing the form. If a form is extensive, there may be prompting for information which is not relevant in the context of the answers which have been entered. This is wasteful of operator time since unnecessary information is often requested.
In the prior art, in order to avoid prompting for unnecessary information, a first limited form is presented for completion; the entries on that form are evaluated by an individual; and a decision is made to require completion of one or more additional forms. Since there is no automatic prompting for completion of additional forms which are dictated by answers on the completed form, the operator is unduly burdened with the decision process; and operator time is wasted.
Additionally, forms are often used to describe and organize a complex decision process or "business policy". As such, the form contains blanks for both the inputs and results of the decision process. However, the form itself it typically very poor at describing the decision process other than by including notes in the margins. For this reason, many forms are accompanied by an instruction sheet, or "policy manual", which the operator must read, interpret, and apply in the process of completing the form. This is wasteful of operator time, makes it harder to disseminate new decision processes, and results in many forms being completed incorrectly. This weakness of paper forms is not effectively addressed by current form software packages.